package ar.edu.utn.frsf.tpae.a2014.g03.persistence.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import ar.edu.utn.frsf.tpae.a2014.g03.enums.EstadoPedidoEnum;

@Entity
@Table(name = "his")
public class HistorialPedido extends TpaeEntity<Integer> {

	public static final String ESTADO="estado";
	public static final String PEDIDO="pedido";
	public static final String PEDIDO_CLIENTE="pedido.cliente";
	public static final String PEDIDO_CLIENTE_ID="pedido.cliente.id";
	
	
	
	private EstadoPedidoEnum estado;
	private Date fechaCambio;
	private Date fechaRegistraCambio;
	private String comentario;
	private Pedido pedido;
	
	
	@Id
	@Column(name = "his_id")
	@SequenceGenerator(name = "SecuenciaHistorial", sequenceName = "seq_his", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SecuenciaHistorial")
	public Integer getId() {
		return id;
	}
	
	
	@Column(name="his_fch")
	public Date getFechaCambio() {
		return fechaCambio;
	}
	
	public void setFechaCambio(Date fechaCambio) {
		this.fechaCambio = fechaCambio;
	}
	
	@Column(name="his_fch_reg")
	public Date getFechaRegistraCambio() {
		return fechaRegistraCambio;
	}
	
	public void setFechaRegistraCambio(Date fechaRegistraCambio) {
		this.fechaRegistraCambio = fechaRegistraCambio;
	}
	
	@Column(name="his_cmt")
	public String getComentario() {
		return comentario;
	}
	
	public void setComentario(String comentario) {
		this.comentario = comentario;
	}
	
	@ManyToOne
	@JoinColumn(name="his_ped_id")
	public Pedido getPedido() {
		return pedido;
	}
	
	public void setPedido(Pedido pedido) {
		this.pedido = pedido;
	}


	@Column(name="his_est",nullable=false, length=1)
	@Enumerated(EnumType.STRING)
	public EstadoPedidoEnum getEstado() {
		return estado;
	}


	public void setEstado(EstadoPedidoEnum estado) {
		this.estado = estado;
	}
	
}
